package edu.erpan.bl.entities;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import edu.erpan.util.entityManager.DefaultEntity;


/**
 * The persistent class for the proveedores database table.
 * 
 */
@Entity
@Table(name="proveedores")
public class Proveedor extends DefaultEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idproveedores;

	@Column(nullable=false)
	private boolean activo;

	@Column(nullable=false, length=45)
	private String contacto;

	@Column(name="correo_electronico", nullable=false, length=200)
	private String correoElectronico;

	@Column(name="dia_entrega", nullable=false, length=200)
	private String diaEntrega;

	@Column(nullable=false, length=45)
	private String direccion;

    @Temporal( TemporalType.DATE)
	@Column(name="fecha_ingreso", nullable=false)
	private Date fechaIngreso;

	@Column(name="forma_pago", nullable=false, length=25)
	private String formaPago;

	@Column(nullable=false, length=200)
	private String nombre;

	@Column(length=800)
	private String observaciones;

	@Column(nullable=false, length=200)
	private String representante;

	@Column(nullable=false, length=15)
	private String telefono;

	@Column(name="tiempo_entrega", nullable=false)
	private int tiempoEntrega;

	//bi-directional many-to-one association to RecepcionMateriaPrima
	@OneToMany(mappedBy="proveedore", fetch=FetchType.EAGER)
	private List<RecepcionMateriaPrima> recepcionMateriaPrimas;

    public Proveedor() {
    }

	public int getIdproveedores() {
		return this.idproveedores;
	}

	public void setIdproveedores(int idproveedores) {
		this.idproveedores = idproveedores;
	}

	public boolean isActivo() {
		return this.activo;
	}

	public void setActivo(boolean activo) {
		this.activo = activo;
	}

	public String getContacto() {
		return this.contacto;
	}

	public void setContacto(String contacto) {
		this.contacto = contacto;
	}

	public String getCorreoElectronico() {
		return this.correoElectronico;
	}

	public void setCorreoElectronico(String correoElectronico) {
		this.correoElectronico = correoElectronico;
	}

	public String getDiaEntrega() {
		return this.diaEntrega;
	}

	public void setDiaEntrega(String diaEntrega) {
		this.diaEntrega = diaEntrega;
	}

	public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public Date getFechaIngreso() {
		return this.fechaIngreso;
	}

	public void setFechaIngreso(Date fechaIngreso) {
		this.fechaIngreso = fechaIngreso;
	}

	public String getFormaPago() {
		return this.formaPago;
	}

	public void setFormaPago(String formaPago) {
		this.formaPago = formaPago;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getObservaciones() {
		return this.observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	public String getRepresentante() {
		return this.representante;
	}

	public void setRepresentante(String representante) {
		this.representante = representante;
	}

	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public int getTiempoEntrega() {
		return this.tiempoEntrega;
	}

	public void setTiempoEntrega(int tiempoEntrega) {
		this.tiempoEntrega = tiempoEntrega;
	}

	public List<RecepcionMateriaPrima> getRecepcionMateriaPrimas() {
		return this.recepcionMateriaPrimas;
	}

	public void setRecepcionMateriaPrimas(List<RecepcionMateriaPrima> recepcionMateriaPrimas) {
		this.recepcionMateriaPrimas = recepcionMateriaPrimas;
	}
	
}